# 从time模块导入sleep函数，用于程序强制暂停（等待页面加载、操作间隔）
from time import sleep
# 从selenium库导入webdriver模块，用于创建浏览器驱动、控制浏览器
from selenium import webdriver
# 从selenium导入Keys类（此处未实际使用，保留原导入，可后续扩展）
from selenium.webdriver.common.keys import Keys
# 导入WebDriverWait类（此处未实际使用，保留原导入，可后续扩展显式等待）
from selenium.webdriver.support.wait import WebDriverWait
# 导入By类（适配新版selenium，替代已弃用的find_element_by_*方法）
from selenium.webdriver.common.by import By

# 1. 初始化并打开Chrome浏览器
# executable_path：指定ChromeDriver驱动的本地绝对路径（适配selenium3及以下版本）
# 驱动作用：建立Python代码与Chrome浏览器的通信桥梁，实现对浏览器的控制
driver = webdriver.Chrome(executable_path='D:/chrome_driver/chromedriver.exe')
# 注释：selenium4及以上版本推荐写法（无需手动指定驱动路径）
# 需提前安装 webdriver-manager 库（pip install webdriver-manager），自动匹配浏览器版本下载驱动
# driver = webdriver.Chrome() # 创建Chrome浏览器对象，后续通过该对象执行所有操作

# 放大浏览器窗口
# maximize_window()：将窗口调整为屏幕最大尺寸，避免下拉框因窗口过小被隐藏，提高操作稳定性
driver.maximize_window()

# 2. 访问目标页面（注册A页面）
# get()方法：接收完整网络URL，让浏览器加载并显示该网页
driver.get("http://121.43.169.97:8848/pageA.html")

# 暂停2秒：等待页面完全加载（尤其是下拉框组件，避免因动态加载导致定位失败）
sleep(2)

# ---------------------- 核心操作：选择下拉框中的选项 ----------------------
# 说明：此处操作的是“原生HTML下拉框”（<select> + <option>标签），直接定位<option>元素点击即可
# 若为自定义下拉框（如div模拟的下拉框），需先点击下拉框触发展开，再选择选项

# 操作1：选择下拉框中的“上海”选项
# 定位逻辑：通过CSS_SELECTOR属性选择器定位value属性为"sh"的<option>元素
# 修复：替换已弃用的find_element_by_css_selector→使用find_element(By.CSS_SELECTOR, 定位器)
# [value='sh']：CSS_SELECTOR属性选择器，匹配所有value属性值为'sh'的元素（此处对应上海选项）
shanghai_option = driver.find_element(By.CSS_SELECTOR, "[value='sh']")
# click()：点击该选项，实现下拉框选中“上海”
shanghai_option.click()

# 暂停2秒：等待选中操作生效，便于观察切换效果
sleep(2)

# 操作2：选择下拉框中的“广州”选项
# 定位逻辑：通过CSS_SELECTOR属性选择器定位value属性为"gz"的<option>元素（对应广州选项）
guangzhou_option = driver.find_element(By.CSS_SELECTOR, "[value='gz']")
# click()：点击该选项，实现下拉框从“上海”切换为“广州”
guangzhou_option.click()

# （可选）延长暂停时间观察最终选中效果，然后关闭浏览器
sleep(3)
# 关闭浏览器并释放资源
driver.quit()